{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.datasets.samples_generator import make_blobs\n",
    "from sklearn.metrics import adjusted_rand_score\n",
    "from sklearn import cluster"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 产生分隔的高斯分布的聚类簇 样本分布见 6-1\n",
    "# centers 核心点的数组\n",
    "# num 样本数\n",
    "# std 每簇的标准差\n",
    "def create_data(centers,num=1000,std=0.7):\n",
    "    x, labels_true = make_blobs(n_samples=num, centers=centers, cluster_std=std)\n",
    "    return x, labels_true"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def test_AC(*data):\n",
    "    x,labels_true = data\n",
    "    ac = cluster.AgglomerativeClustering()\n",
    "    predicted_labels = ac.fit_predict(x)\n",
    "    print('ARI:{0}'.format(adjusted_rand_score(labels_true,predicted_labels))) #ARI 可以理解为聚类效果 越大越好"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ARI:0.33266533066132264\n"
     ]
    }
   ],
   "source": [
    "x, labels_true = create_data(((1,1),(2,2),(1,2),(10,20)),1000,0.5)\n",
    "test_AC(x, labels_true)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 簇数量的影响\n",
    "def test_AC_nclusters(*data):\n",
    "    x,labels_true = data\n",
    "    nums = range(1,15)\n",
    "    ARIs =[]\n",
    "    for num in nums:\n",
    "        ac = cluster.AgglomerativeClustering(n_clusters=num)\n",
    "        predicted_labels = ac.fit_predict(x)\n",
    "        ARIs.append(adjusted_rand_score(labels_true,predicted_labels))\n",
    "        \n",
    "    # 绘图\n",
    "    fig = plt.figure()\n",
    "    fig.set_figheight(5)\n",
    "    fig.set_figwidth(15)\n",
    "    ax = fig.add_subplot(111)\n",
    "    ax.plot(nums, ARIs, marker='+')\n",
    "    ax.set_xlabel('n_clusters')\n",
    "    ax.set_ylabel('ARI')\n",
    "    fig.suptitle('KMeans')\n",
    "    plt.show()\n",
    "\n",
    "x, labels_true = create_data(((1,1),(2,2),(1,2),(10,20)),1000,0.5)\n",
    "test_AC_nclusters(x, labels_true)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 链接方式的影响\n",
    "def test_AC_linkage(*data):\n",
    "    x,labels_true = data\n",
    "    nums = range(1,50)\n",
    "    # 绘图\n",
    "    fig = plt.figure()\n",
    "    fig.set_figheight(5)\n",
    "    fig.set_figwidth(15)\n",
    "    ax = fig.add_subplot(111)\n",
    "    \n",
    "    Linkages = ['ward','complete','average']\n",
    "    markers = '+o*'\n",
    "    for i, linkage in enumerate(Linkages):\n",
    "        ARIs =[]\n",
    "        for num in nums:\n",
    "            ac = cluster.AgglomerativeClustering(n_clusters=num, linkage=linkage)\n",
    "            predicted_labels = ac.fit_predict(x)\n",
    "            ARIs.append(adjusted_rand_score(labels_true,predicted_labels))\n",
    "        ax.plot(nums, ARIs, marker=markers[i], label='linkage: {0}'.format(linkage))\n",
    "        \n",
    "    ax.set_xlabel('n_clusters')\n",
    "    ax.set_ylabel('ARI')\n",
    "    ax.legend(loc='best')\n",
    "    fig.suptitle('AgglomerativeClustering')\n",
    "    plt.show()\n",
    "\n",
    "x, labels_true = create_data(((1,1),(2,2),(1,2),(10,20)),1000,0.5)\n",
    "test_AC_linkage(x, labels_true)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
